home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2000 March / maximum-cd-2000-03.iso / Quake3 Game Source / Q3AGameSource.exe / Main / ui_main.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-18  |  5.9 KB  |  226 lines

  1. // Copyright (C) 1999-2000 Id Software, Inc.
  2. //
  3. /*
  4. =======================================================================
  5.  
  6. USER INTERFACE MAIN
  7.  
  8. =======================================================================
  9. */
  10.  
  11.  
  12. #include "ui_local.h"
  13.  
  14.  
  15. /*
  16. ================
  17. vmMain
  18.  
  19. This is the only way control passes into the module.
  20. This must be the very first function compiled into the .qvm file
  21. ================
  22. */
  23. int vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 ) {
  24.     switch ( command ) {
  25.     case UI_GETAPIVERSION:
  26.         return UI_API_VERSION;
  27.  
  28.     case UI_INIT:
  29.         UI_Init();
  30.         return 0;
  31.  
  32.     case UI_SHUTDOWN:
  33.         UI_Shutdown();
  34.         return 0;
  35.  
  36.     case UI_KEY_EVENT:
  37.         UI_KeyEvent( arg0 );
  38.         return 0;
  39.  
  40.     case UI_MOUSE_EVENT:
  41.         UI_MouseEvent( arg0, arg1 );
  42.         return 0;
  43.  
  44.     case UI_REFRESH:
  45.         UI_Refresh( arg0 );
  46.         return 0;
  47.  
  48.     case UI_IS_FULLSCREEN:
  49.         return UI_IsFullscreen();
  50.  
  51.     case UI_SET_ACTIVE_MENU:
  52.         UI_SetActiveMenu( arg0 );
  53.         return 0;
  54.  
  55.     case UI_CONSOLE_COMMAND:
  56.         return UI_ConsoleCommand();
  57.  
  58.     case UI_DRAW_CONNECT_SCREEN:
  59.         UI_DrawConnectScreen( arg0 );
  60.         return 0;
  61.     }
  62.  
  63.     return -1;
  64. }
  65.  
  66.  
  67. /*
  68. ================
  69. cvars
  70. ================
  71. */
  72.  
  73. typedef struct {
  74.     vmCvar_t    *vmCvar;
  75.     char        *cvarName;
  76.     char        *defaultString;
  77.     int            cvarFlags;
  78. } cvarTable_t;
  79.  
  80. vmCvar_t    ui_ffa_fraglimit;
  81. vmCvar_t    ui_ffa_timelimit;
  82.  
  83. vmCvar_t    ui_tourney_fraglimit;
  84. vmCvar_t    ui_tourney_timelimit;
  85.  
  86. vmCvar_t    ui_team_fraglimit;
  87. vmCvar_t    ui_team_timelimit;
  88. vmCvar_t    ui_team_friendly;
  89.  
  90. vmCvar_t    ui_ctf_capturelimit;
  91. vmCvar_t    ui_ctf_timelimit;
  92. vmCvar_t    ui_ctf_friendly;
  93.  
  94. vmCvar_t    ui_arenasFile;
  95. vmCvar_t    ui_botsFile;
  96. vmCvar_t    ui_spScores1;
  97. vmCvar_t    ui_spScores2;
  98. vmCvar_t    ui_spScores3;
  99. vmCvar_t    ui_spScores4;
  100. vmCvar_t    ui_spScores5;
  101. vmCvar_t    ui_spAwards;
  102. vmCvar_t    ui_spVideos;
  103. vmCvar_t    ui_spSkill;
  104.  
  105. vmCvar_t    ui_spSelection;
  106.  
  107. vmCvar_t    ui_browserMaster;
  108. vmCvar_t    ui_browserGameType;
  109. vmCvar_t    ui_browserSortKey;
  110. vmCvar_t    ui_browserShowFull;
  111. vmCvar_t    ui_browserShowEmpty;
  112.  
  113. vmCvar_t    ui_brassTime;
  114. vmCvar_t    ui_drawCrosshair;
  115. vmCvar_t    ui_drawCrosshairNames;
  116. vmCvar_t    ui_marks;
  117.  
  118. vmCvar_t    ui_server1;
  119. vmCvar_t    ui_server2;
  120. vmCvar_t    ui_server3;
  121. vmCvar_t    ui_server4;
  122. vmCvar_t    ui_server5;
  123. vmCvar_t    ui_server6;
  124. vmCvar_t    ui_server7;
  125. vmCvar_t    ui_server8;
  126. vmCvar_t    ui_server9;
  127. vmCvar_t    ui_server10;
  128. vmCvar_t    ui_server11;
  129. vmCvar_t    ui_server12;
  130. vmCvar_t    ui_server13;
  131. vmCvar_t    ui_server14;
  132. vmCvar_t    ui_server15;
  133. vmCvar_t    ui_server16;
  134.  
  135. vmCvar_t    ui_cdkeychecked;
  136.  
  137. cvarTable_t        cvarTable[] = {
  138.     { &ui_ffa_fraglimit, "ui_ffa_fraglimit", "20", CVAR_ARCHIVE },
  139.     { &ui_ffa_timelimit, "ui_ffa_timelimit", "0", CVAR_ARCHIVE },
  140.  
  141.     { &ui_tourney_fraglimit, "ui_tourney_fraglimit", "0", CVAR_ARCHIVE },
  142.     { &ui_tourney_timelimit, "ui_tourney_timelimit", "15", CVAR_ARCHIVE },
  143.  
  144.     { &ui_team_fraglimit, "ui_team_fraglimit", "0", CVAR_ARCHIVE },
  145.     { &ui_team_timelimit, "ui_team_timelimit", "20", CVAR_ARCHIVE },
  146.     { &ui_team_friendly, "ui_team_friendly",  "1", CVAR_ARCHIVE },
  147.  
  148.     { &ui_ctf_capturelimit, "ui_ctf_capturelimit", "8", CVAR_ARCHIVE },
  149.     { &ui_ctf_timelimit, "ui_ctf_timelimit", "30", CVAR_ARCHIVE },
  150.     { &ui_ctf_friendly, "ui_ctf_friendly",  "0", CVAR_ARCHIVE },
  151.  
  152.     { &ui_arenasFile, "g_arenasFile", "", CVAR_INIT|CVAR_ROM },
  153.     { &ui_botsFile, "g_botsFile", "", CVAR_INIT|CVAR_ROM },
  154.     { &ui_spScores1, "g_spScores1", "", CVAR_ARCHIVE | CVAR_ROM },
  155.     { &ui_spScores2, "g_spScores2", "", CVAR_ARCHIVE | CVAR_ROM },
  156.     { &ui_spScores3, "g_spScores3", "", CVAR_ARCHIVE | CVAR_ROM },
  157.     { &ui_spScores4, "g_spScores4", "", CVAR_ARCHIVE | CVAR_ROM },
  158.     { &ui_spScores5, "g_spScores5", "", CVAR_ARCHIVE | CVAR_ROM },
  159.     { &ui_spAwards, "g_spAwards", "", CVAR_ARCHIVE | CVAR_ROM },
  160.     { &ui_spVideos, "g_spVideos", "", CVAR_ARCHIVE | CVAR_ROM },
  161.     { &ui_spSkill, "g_spSkill", "2", CVAR_ARCHIVE | CVAR_LATCH },
  162.  
  163.     { &ui_spSelection, "ui_spSelection", "", CVAR_ROM },
  164.  
  165.     { &ui_browserMaster, "ui_browserMaster", "0", CVAR_ARCHIVE },
  166.     { &ui_browserGameType, "ui_browserGameType", "0", CVAR_ARCHIVE },
  167.     { &ui_browserSortKey, "ui_browserSortKey", "4", CVAR_ARCHIVE },
  168.     { &ui_browserShowFull, "ui_browserShowFull", "1", CVAR_ARCHIVE },
  169.     { &ui_browserShowEmpty, "ui_browserShowEmpty", "1", CVAR_ARCHIVE },
  170.  
  171.     { &ui_brassTime, "cg_brassTime", "1250", CVAR_ARCHIVE },
  172.     { &ui_drawCrosshair, "cg_drawCrosshair", "4", CVAR_ARCHIVE },
  173.     { &ui_drawCrosshairNames, "cg_drawCrosshairNames", "1", CVAR_ARCHIVE },
  174.     { &ui_marks, "cg_marks", "1", CVAR_ARCHIVE },
  175.  
  176.     { &ui_server1, "server1", "", CVAR_ARCHIVE },
  177.     { &ui_server2, "server2", "", CVAR_ARCHIVE },
  178.     { &ui_server3, "server3", "", CVAR_ARCHIVE },
  179.     { &ui_server4, "server4", "", CVAR_ARCHIVE },
  180.     { &ui_server5, "server5", "", CVAR_ARCHIVE },
  181.     { &ui_server6, "server6", "", CVAR_ARCHIVE },
  182.     { &ui_server7, "server7", "", CVAR_ARCHIVE },
  183.     { &ui_server8, "server8", "", CVAR_ARCHIVE },
  184.     { &ui_server9, "server9", "", CVAR_ARCHIVE },
  185.     { &ui_server10, "server10", "", CVAR_ARCHIVE },
  186.     { &ui_server11, "server11", "", CVAR_ARCHIVE },
  187.     { &ui_server12, "server12", "", CVAR_ARCHIVE },
  188.     { &ui_server13, "server13", "", CVAR_ARCHIVE },
  189.     { &ui_server14, "server14", "", CVAR_ARCHIVE },
  190.     { &ui_server15, "server15", "", CVAR_ARCHIVE },
  191.     { &ui_server16, "server16", "", CVAR_ARCHIVE },
  192.  
  193.     { &ui_cdkeychecked, "ui_cdkeychecked", "0", CVAR_ROM }
  194. };
  195.  
  196. int        cvarTableSize = sizeof(cvarTable) / sizeof(cvarTable[0]);
  197.  
  198.  
  199. /*
  200. =================
  201. UI_RegisterCvars
  202. =================
  203. */
  204. void UI_RegisterCvars( void ) {
  205.     int            i;
  206.     cvarTable_t    *cv;
  207.  
  208.     for ( i = 0, cv = cvarTable ; i < cvarTableSize ; i++, cv++ ) {
  209.         trap_Cvar_Register( cv->vmCvar, cv->cvarName, cv->defaultString, cv->cvarFlags );
  210.     }
  211. }
  212.  
  213. /*
  214. =================
  215. UI_UpdateCvars
  216. =================
  217. */
  218. void UI_UpdateCvars( void ) {
  219.     int            i;
  220.     cvarTable_t    *cv;
  221.  
  222.     for ( i = 0, cv = cvarTable ; i < cvarTableSize ; i++, cv++ ) {
  223.         trap_Cvar_Update( cv->vmCvar );
  224.     }
  225. }
  226.